package dfbz.Map接口的遍历;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/*
*
*public Set<K> keySet() : 获取Map集合中所有的键，存储到Set集合中。
*public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合）
*   1、将map集合中的键值对取出来，存在一个set集合中
*   2、遍历set集合，获取每一个键值对对象  增强for   迭代器
*   3、entry对象中有限个方法，  getKey（）  getValue（）
*tips:
*    Map.Entry  是map接口中的一个内部接口
*               再创建map集合时，就会创建一个enter对象，用来储存键值对
* */

public class test01 {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("黄晓明", "杨颖");
        map.put("刘恺威", "杨幂");
        map.put("吴奇隆", "刘诗诗");
        map.put("林允儿", "mzp");
        demo01(map);
        demo02(map);
    }

    private static void demo02(HashMap<String, String> map) {
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        Iterator<Map.Entry<String, String>> iterator = entrySet.iterator();
        while (iterator.hasNext()){
            Map.Entry<String, String> next = iterator.next();
            System.out.print(next.getKey()+"----"+next.getValue()+"  ");
        }
    }

    private static void demo01(HashMap<String, String> map) {  //遍历map
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.print(entry.getKey()+"---"+entry.getValue()+"\n");
        }
    }
}
